iT邦幫忙

2024 iThome 鐵人賽

DAY 26
1
AI/ ML & Data

dbt 修煉之路系列 第 26

dbt 自動化檢查 - BigQuery Operators(下)

  • 分享至 

  • xImage
  •  

在上一篇文章中,我們介紹了 BigQuery Operator 的基本概念和資料筆數檢查機制。本篇將介紹另一個重要的檢查項目:孤兒物件。這個項目對於維護數據倉庫的整潔性和可靠性非常重要。

孤兒物件

什麼是孤兒物件?

孤兒物件指的是那些存在於 BigQuery 中,但沒有對應 dbt model 的表格或函數。這種情況通常源於以下兩種情況:

  1. Model 重命名後遺留
    • 開發者修改了 model 的名稱
    • 舊名稱的表格仍然保留在 BigQuery 中
    • 形成了沒有對應 model 的孤立表格
  2. 手動創建的表格
    • 開發者直接在 BigQuery 中創建表格
    • 這些表格未納入 dbt 的版本控制系統
    • 缺乏正規的更新和維護機制

為什麼需要檢查孤兒物件?

檢查孤兒物件的重要性體現在以下幾個方面:

  1. 避免資源浪費
    • 孤兒物件佔用儲存空間
    • 可能產生不必要的計算成本
  2. 防止數據混亂
    • 外部系統可能仍在使用廢棄的表格
    • 手動創建的表格可能缺乏文檔說明
  3. 確保數據一致性
    • 避免使用過時的數據
    • 維護數據倉庫的整潔性

檢查實作

Table 和 View 的檢查

使用 INFORMATION_SCHEMA.TABLES 進行檢查:

SELECT
    table_type,
    table_name
FROM
    `{dataset}`.INFORMATION_SCHEMA.TABLES
WHERE
    table_name NOT IN ({dbt_models})

UDF 的檢查

使用 INFORMATION_SCHEMA.ROUTINES 進行檢查:

SELECT
    routine_name,
    routine_type
FROM
    `{dataset}`.INFORMATION_SCHEMA.ROUTINES
WHERE
    routine_name NOT IN ({dbt_models})

在每次 PR 時,透過以上的檢查檢索孤兒物件,如果有發現會透過檢查報告提醒開發者要刪除或將手動創建表格上版,以避免上述所提到可能發生的問題

以上就是 bigquery_operator 的完整介紹,pr-check 套件的主要核心已經都介紹完了,接下來會講解整個 dbt CI/CD pipeline 的程式碼。


上一篇
dbt 自動化檢查 - BigQuery Operators(上)
下一篇
dbt CI/CD pipeline
系列文
dbt 修煉之路30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言